const { prisma } = require('../config/prisma');

// 初始化服务分类数据
const initialCategories = [
  {
    name: '个人外勤',
    icon: '🏃‍♂️',
    description: '提供跑腿、代办各种个人事务服务',
    sort_order: 1
  },
  {
    name: '个人会计',
    icon: '💼',
    description: '专业会计服务，代理记账、税务处理',
    sort_order: 2
  },
  {
    name: '疑难杂症',
    icon: '🔧',
    description: '解决各种疑难问题，专业咨询服务',
    sort_order: 3
  },
  {
    name: '刻章',
    icon: '🔖',
    description: '提供公章、私章等各类印章制作服务',
    sort_order: 4
  },
  {
    name: '银行开户',
    icon: '🏦',
    description: '协助办理银行开户手续，提供专业指导',
    sort_order: 5
  },
  {
    name: '地址',
    icon: '📍',
    description: '提供注册地址、挂靠地址等服务',
    sort_order: 6
  },
  {
    name: '节税返税',
    icon: '💰',
    description: '合法节税方案，税收优惠政策咨询',
    sort_order: 7
  },
  {
    name: '垫资实缴',
    icon: '💳',
    description: '企业注册资本垫资实缴服务',
    sort_order: 8
  },
  {
    name: '人员挂靠',
    icon: '👥',
    description: '提供人员挂靠、社保代缴等服务',
    sort_order: 9
  },
  {
    name: '资质许可',
    icon: '📋',
    description: '各类行业资质许可证办理服务',
    sort_order: 10
  },
  {
    name: '电销数据',
    icon: '📞',
    description: '电话销售数据提供，精准客户信息',
    sort_order: 11
  },
  {
    name: '出报告',
    icon: '📊',
    description: '各类专业报告出具服务',
    sort_order: 12
  },
  {
    name: '知识产权',
    icon: '⚖️',
    description: '商标、专利、版权等知识产权服务',
    sort_order: 13
  },
  {
    name: '信用修复',
    icon: '🛡️',
    description: '企业和个人信用修复服务',
    sort_order: 14
  },
  {
    name: '认证',
    icon: '✅',
    description: '各类认证服务，ISO、3C等认证办理',
    sort_order: 15
  }
];

async function initServiceCategories() {
  try {
    console.log('开始初始化服务分类数据...');

    // 检查是否已经有数据
    const existingCount = await prisma.service_categories.count();
    if (existingCount > 0) {
      console.log(`已存在 ${existingCount} 个服务分类，跳过初始化`);
      return;
    }

    // 批量插入分类数据
    const result = await prisma.service_categories.createMany({
      data: initialCategories,
      skipDuplicates: true
    });

    console.log(`成功初始化 ${result.count} 个服务分类`);

    // 显示创建的分类列表
    const categories = await prisma.service_categories.findMany({
      orderBy: { sort_order: 'asc' }
    });

    console.log('\n创建的服务分类列表：');
    categories.forEach(category => {
      console.log(`${category.icon} ${category.name} - ${category.description}`);
    });

  } catch (error) {
    console.error('初始化服务分类失败:', error);
    throw error;
  } finally {
    await prisma.$disconnect();
  }
}

// 如果直接运行此脚本
if (require.main === module) {
  initServiceCategories()
    .then(() => {
      console.log('服务分类初始化完成');
      process.exit(0);
    })
    .catch((error) => {
      console.error('初始化失败:', error);
      process.exit(1);
    });
}

module.exports = { initServiceCategories };